Users may train a robot with supervised learning to perform a task (e.g., navigation, manipulation, and/or other tasks). Users may want to know what is the performance of the robot while executing a task (e.g., does it bump into obstacles, how precise is manipulation, and/or other measurements of performance). If a user knows about a robot's performance, he may speed up training process or make training more precise. Users may allow a robot to perform the task autonomously, but that may be expensive (e.g., time consuming, robot can damage itself, and/or other expenses or disadvantages).
Conventionally, users may train a robot with supervised learning to perform a task (e.g., navigation, manipulation, and/or other tasks). Tasks may vary in complexity. Depending on a task's complexity, prediction performance of a trained classifier may vary. For simple tasks such as navigating while avoiding obstacles and grasping a target, following a trajectory to the target may be a situation in which a single classifier can achieve acceptable performance. Using existing approaches, for more complex tasks such as fetching an object or sequential manipulation tasks (e.g., take a spoon, stir a soup, and then put spoon back), a single classifier may be unable to infer necessary actions from demonstrations alone.
Random K nearest neighbor (RKNN) methods may be used in classification and/or a general regression applications wherein the input space is both high dimensional and highly redundant, the most common example of this being when RGB images may be used as input and the model output is the predicted motor command. However, when the input data are multimodal (i.e. consisting of data from more than one sensory modality) and the dimensionality of one modality is much greater than the dimensionality of another traditional RKNN approaches may prove inadequate for providing control signals that accurately reflect the smaller modality signal content.
According to conventional approaches, given a task in which a user wants to train a robot to navigate along a path from location A to location B (A and B may be the same location, in which case the path takes the form of a loop), the user may first control the robot one time or multiple times to move along the desired path. This may constitute the training of the robot. Thereafter, the robot may be expected to perform the same navigation autonomously.
One typical approach may be to store the motor commands that were executed during the training phase, and then simply replay them. This, however, may not work well in practice, at least because there may be some variability in how the motor commands translate into actual movement in physical space. In general, if the robot is slightly off course, it may continue to drift more and more off course.